package edu.njfu.learnkotlin

fun main() {
    val fruits=listOf("apple","pear","grape","banana","watermelon")
//    val strBuilder=StringBuilder()
//    /**
//     * java 中 String，是常量
//     *        StringBuffer 变量
//     *        StringBuilder 变量
//     *
//     */
//    strBuilder.append("水果列表：\n")
//    for( fruit in fruits){
//        strBuilder.append(fruit).append("\n");
//    }
//    strBuilder.append("开始吃水果")
//    println(strBuilder.toString())
    //with函数，最后一行作为返回值
    val result=with(StringBuffer()){
        //StringBuilder上下文环境
        append("水果列表：\n")
        for( fruit in fruits){
            append(fruit).append("\n");
        }
        append("开始吃水果")
        toString()
    }
    println(result)

    //run函数，最后一行作为返回值
    val result2=StringBuffer().run{
        //StringBuilder上下文环境
        append("水果列表：\n")
        for( fruit in fruits){
            append(fruit).append("\n");
        }
        append("开始吃水果")
        toString()
    }
    println(result2)

    //apoly函数,返回apply对象
    val result3=StringBuffer().apply{
        //StringBuilder上下文环境
        append("水果列表：\n")
        for( fruit in fruits){
            append(fruit).append("\n");
        }
        append("开始吃水果")
    }
    println(result3.toString())
}